Crate quinn_proto
source · [−]Expand description
Low-level protocol logic for the QUIC protoocol
quinn-proto contains a fully deterministic implementation of QUIC protocol logic. It contains no networking code and does not get any relevant timestamps from the operating system. Most users may want to use the futures-based quinn API instead.
The quinn-proto API might be of interest if you want to use it from a C or C++ project through C bindings or if you want to use a different event loop than the one tokio provides.
The most important types are Endpoint
, which conceptually represents the protocol state for
a single socket and mostly manages configuration and dispatches incoming datagrams to the
related Connection
. Connection
types contain the bulk of the protocol logic related to
managing a single connection and all the related state (such as streams).
Modules
Logic for controlling the rate at which data is sent
Traits and implementations for the QUIC cryptography protocol
Types that are generic over the crypto protocol implementation
QUIC connection transport parameters
Structs
Reason given by an application for closing the connection
A chunk of data from the receive stream
Chunks
Configuration for outgoing connections
Protocol state and logic for a single QUIC connection
Reason given by the transport for closing the connection
Events sent from an Endpoint to a Connection
Internal identifier for a Connection
currently associated with an endpoint
Protocol-level identifier for a connection.
Connection statistics
An unreliable datagram
API to control datagram traffic
The main entry point to the library
Global configuration for the endpoint, affecting all connections
Events sent from a Connection to an Endpoint
Maximum duration of inactivity to accept before timing out the connection.
Generates purely random connection IDs of a certain length
Access to streams
Access to streams
Parameters governing incoming connections
Identifier for a stream within a particular connection
Access to streams
An outgoing packet
Parameters governing the core QUIC state machine
Transport-level errors occur when a peer violates the protocol specification
Transport-level error code
Error indicating that a stream has not been opened or has already been finished or reset
An integer less than 2^62
Error returned when constructing a VarInt
from a value >= 2^62
Indicates how many bytes and chunks had been transferred in a write operation
Enums
Errors in the configuration of an endpoint
Errors in the parameters being used to create a new connection
Reasons why a connection might be lost
Event resulting from processing a single datagram
Whether a stream communicates data in both directions or only from the initiator
Explicit congestion notification codepoint
Events of interest to the application
Reasons why attempting to finish a stream might fail
Errors triggered when reading from a recv stream
Errors triggered when opening a recv stream for reading
Errors that can arise when sending a datagram
Whether an endpoint was the initiator of a connection
Application events about streams
Errors triggered while writing to a send stream
Constants
The QUIC protocol version implemented.
Traits
A source of one or more buffers which can be converted into Bytes
buffers on demand
Generates connection IDs for incoming connections